android WebView加载html 并 引用本地资源(图片、字体库) | 您所在的位置:网站首页 › html 本地文件路径 安卓 › android WebView加载html 并 引用本地资源(图片、字体库) |
本文介绍如何用android WebView加载html代码,并在html内引用apk里的资源文件,例如图片、字体库等。
先说一般情况,文件夹有html、ttf字库、图片
html代码如下: .text { font-family: STANK; font-size:60px;} @font-face { font-family: STANK; src:url(STANK.ttf); }font 打开这个content.html,有如下效果:
那么,加载到webView的html代码,应该如何引用 assets文件、res/drawable、sd卡里面文件呢?
webView加载html代码,有两个方法: 1.webView.loadData(String data, String mimeType, String encoding) 2. webView.loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String failUrl);
经过试验,只能用loadDataWithBaseURL。参数里面有baseUrl,这个是指定html文件目录的。例如,content.html在 assets/html/content.html,那么 baseUrl = file:///android_asset/html/ 如果content.html在 /sdcard/html/content.html,那么 baseUrl = file:///sdcard/html/
注意:保证"file:"后面要有三个'/'
实战: 1.现在,assets目录结构是这样:
java代码: webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "UTF-8", null);html代码: .text { font-family: Impact; font-size:60px;} @font-face { font-family: Impact; src:url( ../font/Impact.ttf ); }font 如果图片在/sdcard/html/image0.png,ttf文件在/sdcard/html/font/Impact.ttf ,则 @font-face { font-family: Impact; src:url( file:///sdcard/html/font/Impact.ttf ); }如果图片在res/drawable-xhdpi 或其他drawable文件夹,则
2.当html文件在/sdcard/html/content.html
java代码: webView.loadDataWithBaseURL(“file:///sdcard/html/”, html, "text/html", "UTF-8", null); html代码: .text { font-family: Impact; font-size:60px;} @font-face { font-family: Impact; src:url( font/Impact.ttf ); }font 如果图片是在assets/html/image0.png,则 如果图片在res/drawable/下,同理。
================================================================= demo下载 http://download.csdn.net/detail/kkmike999/8502163
|
CopyRight 2018-2019 实验室设备网 版权所有 |